查看原文
其他

分析B站《送你一朵小红花》弹幕评论

李运辰 Python研究者 2022-07-01


一、前言


《送你一朵小红花》2020年12月31日上映,最近的微博和身边的人都在讨论这部电影,所以今天就来对这部电影的弹幕评论分析。


本文完整源码获取方式:在底部



二、获取数据


先给出视频地址:

https://www.bilibili.com/video/BV1nX4y1u7BH?from=search&seid=13601446070722236862


这个B站视频的播放量达到了74万多,底下有很多评论以及弹幕,所以现在了这个视频去进行分析。


爬取过B站弹幕的小伙伴都知道,B站的弹幕是有专门的URL去获取的

https://api.bilibili.com/x/v1/dm/list.so?oid=id

oid参数的id是对于的视频id(通过F12可以看到这个id

因此本次要爬取的视频id是266851015

弹幕地址

https://api.bilibili.com/x/v1/dm/list.so?oid=266851015



编程获取数据

请求库和请求头

####李运辰 2021-01-04import requestsheaders = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0'}


请求数据,并去掉无关的p标签

####李运辰 2021-01-04url="https://api.bilibili.com/x/v1/dm/list.so?oid=266851015"r = requests.get(url, headers=headers)r.encoding = 'utf-8'list_s = r.text.split("<d p=")list_s = list_s[1:]

写入txt文件,保存为t2.txt

with open("t2.txt","a+",encoding='utf-8') as f: for i in list_s: i = (i.split(">"))[1].replace("</d","") #print(i) i = i.replace("?","").replace("。","").replace(",","").replace("+","").replace("!","").replace("....","").replace(".......","") f.write(str(i)+"\n")


为了方便分析,所以需要去掉一些符号?、!,等等这些

i = i.replace("?","").replace("。","").replace(",","").replace("+","").replace("!","").replace("....","").replace(".......","")


保存后的txt结果如下



三、词云可视化分析

同样需要使用到jieba库

from stylecloud import gen_stylecloudimport jieba


6种词云图案

为了不同的视觉效果,这里使用了6种不同的图案去画词云图

(1、国旗,2、翼龙,3、狗,4、猫,5、鸽子,6、QQ)

icon_name='',#国旗icon_name='fas fa-dragon',#翼龙icon_name='fas fa-dog',#狗icon_name='fas fa-cat',#猫icon_name='fas fa-dove',#鸽子icon_name='fab fa-qq',#qq


画好的词云图保存到本地

simsun.ttc是词云图的字体,必须加中文字体,否则格式错误

gen_stylecloud(text=result, icon_name=icon_name, font_path='simsun.ttc', output_name=picp) #

代码

####李运辰 2021-01-04with open(file_name, 'r', encoding='utf8') as f: word_list = jieba.cut(f.read()) result = " ".join(word_list) # 分词用 隔开 # 制作中文云词 icon_name = "" if icon == "1": icon_name = '' elif icon == "2": icon_name = 'fas fa-dragon' elif icon == "3": icon_name = 'fas fa-dog' elif icon == "4": icon_name = 'fas fa-cat' elif icon == "5": icon_name = 'fas fa-dove' elif icon == "6": icon_name = 'fab fa-qq' """ # icon_name='',#国旗 # icon_name='fas fa-dragon',#翼龙 #icon_name='fas fa-dog',#狗 # icon_name='fas fa-cat',#猫 # icon_name='fas fa-dove',#鸽子 # icon_name='fab fa-qq',#qq """ picp = file_name.split('.')[0] + str(icon) + '.png' if icon_name is not None and len(icon_name) > 0: gen_stylecloud(text=result, icon_name=icon_name, font_path='simsun.ttc', output_name=picp) # 必须加中文字体,否则格式错误 else: gen_stylecloud(text=result, font_path='simsun.ttc', output_name=picp) # 必须加中文字体,否则格式错误


效果图

1.国旗-词云图

2.翼龙-词云图

3.狗-云图

4.猫-云图

5.鸽子-云图

6.QQ-云图


分析

最好的易烊千玺,最“丧”的韦一航,最感人的《送你一朵小红花》


词云图中,字体越大词,说明提到的次数越多


1、可以看出《送你一朵小红花》这部电影的看点易烊千玺的角色韦一航


2、全员演技派,情绪真挚动人,通过弹幕评论,大家对这部电影表现出强烈的喜欢,同时里面的演技赢得了大家的认可。


3、这部电影完成了一组很有趣的社会实验,我们观众这个群体的存在将本片预设的某些主题延展到了影片之外的真实世界之中。


结尾

1、最后大家有什么问题,或者对代码不懂的,可以在下方评论

2、本文完整源码获取方式



本文完整源码获取方式

公众号回复:送你一朵小红花




------------------- End -------------------



各种爬虫源码获取方式

公众号回复:爬虫源码


4个小时我赚了600块

记录一次爬虫接单项目【采集国际淘宝数据】

终于还是对B站动漫动手了!【数据可视化分析】


欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存